package cn.maihe.elg.operation.supports.electronicseal.kt.mixca;

import com.alibaba.fastjson.JSON;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.Base64;

/**
 * @Description
 * @Author WJH
 * @Date 2021/11/08
 */
public class ToMixCaParamsDto {
    static Logger logger = LoggerFactory.getLogger(ToMixCaParamsDto.class);


    public static String buildBase64(String url, String upload_url, String params) {
        ToMixCaParamsDto dto = new ToMixCaParamsDto();
        dto.setUrl(url);
        dto.setUpload_url(upload_url);
        dto.setParams(params);
        dto.setIs_view("0");
        dto.setIs_upload_pdf("1");
        dto.setIs_auto_close("1");
        dto.setIs_edit("1");
        dto.setIs_edit_old("0");
        dto.setIs_show_seal("1");

        String mixCaReqDto = JSON.toJSONString(dto);
        logger.info("params:{} >> mixCaReqDto={}", dto.getParams(),mixCaReqDto);
        String origBase64 = Base64.getEncoder().encodeToString(JSON.toJSONBytes(dto));
        logger.debug("params:{} >> mixCaReqBase64={}",dto.getParams(), origBase64);
        return origBase64;
    }


    /**
     * url	字符串	签章文件的URL:
     * 例:http://www.xxxx.com/test.pdf.
     * 或者:本地文件如 d:/1.pdf
     * 需要支持http和https的地址,以及本地地址（url地址只要能在浏览器直接访问下载的都应该支持，不需要判断是否以.pdf结尾）
     */
    private String url;

    /**
     * upload_url	字符串	上传签章后的文件的URL.
     * 例:http://www.xxx.com/uploadfile
     * 或者本地文件夹如（D:\test,也需要支持D:/test）
     * 需要支持http和https的地址,以及本地文件地址（为了方便交易平台调用，地址中可以使用带？的get参数，但请尽量使用下面的params字段）
     */
    private String upload_url;
    /**
     * params	字符串	自定义参数.
     * 上传签章文件时,同时将这个参数上传给服务端.
     */
    private String params;
    /**
     * is_view	字符串	是否签章或只查看（0签章，1查看）（只查看时请隐藏盖章、提交等按钮）
     * 可选参数（is_view为0时的参数）
     */
    private String is_view;
    /**
     * is_upload_pdf	字符串	是否需要上传有效的pdf文件.
     * 参数说明:
     * 1: 要上传可以直接预览的签章pdf文件.
     * 0: 不需上传(默认)
     */
    private String is_upload_pdf;
    /**
     * is_auto_close	字符串	保存后是否自动关闭exe文件.
     * 参数说明:
     * 1: 保存后是否要自动关闭exe.
     * 0: 否则手动关闭(默认)
     */
    private String is_auto_close;
    /**
     * is_edit	字符串	是否可以编辑.
     * 参数说明:
     * 1: 可以编辑(默认)
     * 0: 不可编辑
     * 2：不可编辑，且不显示印章
     */
    private String is_edit;
    /**
     * is_edit_old	字符串	是否可编辑旧的章.
     * 该属性在is_edit为1时才生效.
     * 参数说明:
     * 1: 可以编辑旧的章(默认)
     * 0: 不可编辑旧的章
     */
    private String is_edit_old;
    /**
     * 可选参数（is_view为1时的参数）
     * is_show_seal	字符串	是否显示印章
     * 参数说明：
     * 1：显示（默认）
     * 0：不显示
     */
    private String is_show_seal;

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public String getUpload_url() {
        return upload_url;
    }

    public void setUpload_url(String upload_url) {
        this.upload_url = upload_url;
    }

    public String getParams() {
        return params;
    }

    public void setParams(String params) {
        this.params = params;
    }

    public String getIs_view() {
        return is_view;
    }

    public void setIs_view(String is_view) {
        this.is_view = is_view;
    }

    public String getIs_upload_pdf() {
        return is_upload_pdf;
    }

    public void setIs_upload_pdf(String is_upload_pdf) {
        this.is_upload_pdf = is_upload_pdf;
    }

    public String getIs_auto_close() {
        return is_auto_close;
    }

    public void setIs_auto_close(String is_auto_close) {
        this.is_auto_close = is_auto_close;
    }

    public String getIs_edit() {
        return is_edit;
    }

    public void setIs_edit(String is_edit) {
        this.is_edit = is_edit;
    }

    public String getIs_edit_old() {
        return is_edit_old;
    }

    public void setIs_edit_old(String is_edit_old) {
        this.is_edit_old = is_edit_old;
    }

    public String getIs_show_seal() {
        return is_show_seal;
    }

    public void setIs_show_seal(String is_show_seal) {
        this.is_show_seal = is_show_seal;
    }


}
